Various improvements to chat interface#18
Conversation
Greptile SummaryThis PR delivers several quality-of-life improvements to the chat interface: a new compact-mode toggle (hides reasoning sections and tool details), a richer Key changes:
Confidence Score: 3/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant UC as useChat
participant SS as streamingStore
participant MMR as ModelResponseCard
participant CR as ContentRound
UC->>SS: initStream(storeKey)
loop Each tool-calling round
UC->>SS: appendContent / appendReasoningContent (deltas)
MMR->>SS: reads content + reasoningContent (live)
MMR->>CR: renders single-round path (no completedRounds yet)
UC->>SS: completeStream(storeKey) — isStreaming=false
UC->>SS: pushCompletedRound(roundData) — reset content/reasoning, add to completedRounds
UC->>SS: resumeStreaming(storeKey) — isStreaming=true
MMR->>SS: reads completedRounds[n], content="" → switches to multi-round path
MMR->>CR: renders completed rounds + StreamingStatusIndicator(thinking/processing)
UC->>SS: startExecutionRound + addExecutions (pending)
Note over UC: executeTools runs async
UC->>SS: updateExecution (running → success/failed)
UC->>SS: setCompletedRoundToolExecution(round) — attaches to last completedRound
MMR->>CR: toolExecutionRound set on last round
end
UC->>SS: completeStream — final
UC->>SS: pushCompletedRound (final round)
UC-->>UC: returns {content, completedRounds, toolExecutionRounds}
UC->>ConvStore: addAssistantResponses(completedRounds, toolExecutionRounds)
MMR->>CR: committed render — isStreaming=false, all rounds with toolExecution
|
No description provided.